package com.health.medical.service;

import java.util.List;
import com.health.medical.domain.MedicalDoctor;
import com.health.medical.domain.dto.DoctorDetailDTO;
import org.springframework.web.multipart.MultipartFile;

/**
 * 医生管理Service接口
 *
 * @author ruoyi
 * @date 2025-10-26
 */
public interface IMedicalDoctorService
{
    /**
     * 查询医生管理
     *
     * @param doctorId 医生管理主键
     * @return 医生管理
     */
    public MedicalDoctor selectMedicalDoctorByDoctorId(Long doctorId);

    /**
     * 查询医生详情（包含机构名和科室名）
     *
     * @param doctorId 医生管理主键
     * @return 医生详情
     */
    public DoctorDetailDTO selectDoctorDetailByDoctorId(Long doctorId);

    /**
     * 查询医生管理列表
     *
     * @param medicalDoctor 医生管理
     * @return 医生管理集合
     */
    public List<MedicalDoctor> selectMedicalDoctorList(MedicalDoctor medicalDoctor);

    /**
     * 查询医生详情列表（包含机构名和科室名）
     *
     * @param medicalDoctor 医生管理
     * @return 医生详情集合
     */
    public List<DoctorDetailDTO> selectDoctorDetailList(MedicalDoctor medicalDoctor);

    /**
     * 新增医生管理
     *
     * @param medicalDoctor 医生管理
     * @return 结果
     */
    public int insertMedicalDoctor(MedicalDoctor medicalDoctor);

    /**
     * 修改医生管理
     *
     * @param medicalDoctor 医生管理
     * @return 结果
     */
    public int updateMedicalDoctor(MedicalDoctor medicalDoctor);

    /**
     * 批量删除医生管理
     *
     * @param doctorIds 需要删除的医生管理主键集合
     * @return 结果
     */
    public int deleteMedicalDoctorByDoctorIds(Long[] doctorIds);

    /**
     * 删除医生管理信息
     *
     * @param doctorId 医生管理主键
     * @return 结果
     */
    public int deleteMedicalDoctorByDoctorId(Long doctorId);

    /**
     * 上传医生头像
     *
     * @param file 图片文件
     * @param doctorId 医生ID
     * @return 头像URL
     */
    String uploadAvatar(MultipartFile file, Long doctorId);


}